-
Notifications
You must be signed in to change notification settings - Fork 15.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: migrate webRequest module to NetworkService (Part 5) #19714
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM with some clarifications.
@@ -206,8 +206,10 @@ Session::Session(v8::Isolate* isolate, AtomBrowserContext* browser_context) | |||
Session::~Session() { | |||
content::BrowserContext::GetDownloadManager(browser_context()) | |||
->RemoveObserver(this); | |||
// TODO(zcbenz): Now since URLRequestContextGetter is gone, is this still | |||
// needed? | |||
// Refs https://github.com/electron/electron/pull/12305. | |||
DestroyGlobalHandle(isolate(), cookies_); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I found this was needed to fix (D)CHECK in destruction order of IO thread when handles were held by UI thread from our modules. But now that they are handled by the network service, this ordering should be pretty much unnecessary. Would be good to check.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
api::Cookies
and others are keeping strong references to BrowserContext
and thus the headache of destructions, I think we can make them use weak reference (plain pointer) and things should be much simpler.
1bf1b88
to
0a8b1b9
Compare
219236a
to
b61ed4d
Compare
No Release Notes |
/trop run backport-to 7-0-x |
The backport process for this PR has been manually initiated, |
I was unable to backport this PR to "7-0-x" cleanly; |
* Pass WebRequest to ProxyingURLLoaderFactory * Call WebRequestAPI in InProgressRequest * Store the listeners * Pass the request and response * Add stub to handle the events * Use extensions::WebRequestInfo * Make sure webRequest is managed by Session * chore: make creation of WebRequestNS more clear * fix: check WebContents for service workers
* feat: associate InProgressRequest with requests (#19648) * feat: migrate webRequest module to NetworkService (Part 4) (#19679) * chore: use gin in WebRequest * Add stubs for APIs * feat: migrate webRequest module to NetworkService (Part 5) (#19714) * Pass WebRequest to ProxyingURLLoaderFactory * Call WebRequestAPI in InProgressRequest * Store the listeners * Pass the request and response * Add stub to handle the events * Use extensions::WebRequestInfo * Make sure webRequest is managed by Session * chore: make creation of WebRequestNS more clear * fix: check WebContents for service workers * feat: migrate webRequest module to NetworkService (Part 6) (#19752) * Implement OnBeforeSendHeaders * Pass the request * Handle simple listeners * Handle response listeners * Read responses from listener * feat: migrate webRequest module to NetworkService (Part 7) (#19820) * fix: gin treats Function as Dictionary when doing convertions * fix: check if listener exists * fix: listener callback should be executed in next tick * feat: make InProgressRequest work * test: re-enable protocol test that relies on webRequest * chore: merge conditions * feat: migrate webRequest module to NetworkService (Part 8) (#19841) * fix: fill uploadData property * fix: requestHeaders in onBeforeSendHeaders * fix: responseHeaders in onHeadersReceived * fix: header keys should not be lowercased * fix: gin::Dictionary::Get succeeds even though key does not exist... * fix: throw for invalid filters * test: re-enable api-web-request-spec * chore: do not use deprecated base::Value API * feat: migrate webRequest module to NetworkService (Part 9) (#19976) * no need to get WebContents for URLLoaderFactory * consult embedder for network_factory created in net module * set disable_web_security to false * re-enable webRequest tests in net module
Description of Change
Refs #15791.
Refs #19602.
This PR makes
ProxyingURLLoaderFactory::InProgressRequest
actually invoke the methods ofwebRequest
module.The next step would be actually invoking the listeners.
Release Notes
Notes: no-notes